package py.edu.ucom.c417.cadira.tablero;

import android.content.Context;
import android.graphics.RectF;

public class Tablero {
	private Casilla[][] tablero;

	public Casilla[][] getTablero() {
		return tablero;
	}

	public void setTablero(Casilla[][] tablero) {
		this.tablero = tablero;
	}

	private int puntoX = 10;
	private int puntoY = 10;
	private int tamCasilla;
	private int ESPACIO = 5;
	private int ESPACIO_ARRIBA = 10;
	private boolean isPanel = false;
	private Context context;
	private int tamX;
	private int tamY;

	// Cuando es tablero de juego
	public Tablero(int tamCasilla, Context context) {
		this.context = context;
		this.tablero = new Casilla[10][10];
		this.tamCasilla = tamCasilla;
		this.inicializarCasillaTablero(10, 10, this.isPanel);
		this.tablero[4][2].setEsAgua(true);
		this.tablero[4][3].setEsAgua(true);
		this.tablero[4][6].setEsAgua(true);
		this.tablero[4][7].setEsAgua(true);
		this.tablero[5][2].setEsAgua(true);
		this.tablero[5][3].setEsAgua(true);
		this.tablero[5][6].setEsAgua(true);
		this.tablero[5][7].setEsAgua(true);
	}

	// Cuando es panel de abajo
	public Tablero(int tamCasillaX, int tamCasillaY, Context context) {
		this.context = context;
		this.tamX = tamCasillaX;
		this.tamY = tamCasillaY;
		this.tablero = new Casilla[tamCasillaX][tamCasillaY];
		this.tamCasilla = 35;
		this.inicializarCasillaTablero(tamCasillaX, tamCasillaY, true);
		this.cargarFichasEnTablero();

	}

	private void cargarFichasEnTablero() {
		int[] cantidadPieza = new int[12];
		cantidadPieza[0] = 1;// Cantidad de Espia
		cantidadPieza[1] = 1;// Cantidad de Bandera
		cantidadPieza[2] = 8;// Cantidad de Soldados
		cantidadPieza[3] = 5;// Cantidad de Cabos desarmadores
		cantidadPieza[4] = 4;// Cantidad de Sargentos
		cantidadPieza[5] = 4;// Cantidad de Capitanes
		cantidadPieza[6] = 4;// Cantidad de Mayores
		cantidadPieza[7] = 3;// Cantidad de Tenientes
		cantidadPieza[8] = 2;// Cantidad de Coroneles
		cantidadPieza[9] = 1;// Cantidad de General
		cantidadPieza[10] = 1;// Cantidad de Mariscal
		cantidadPieza[11] = 6;// Cantidad de Bombas
		int contadorChancho = 0;
		for (int i = 0; i < this.tamX; i++) {
			for (int j = 0; j < this.tamY; j++) {
				for (int j2 = 0; j2 < cantidadPieza[contadorChancho]; j2++) {
					tablero[i][j].getListFichasPanel().add(
							new Ficha(contadorChancho, true, this.context));
				}
				contadorChancho++;
			}
		}
	}

	public void inicializarCasillaTablero(int x, int y, boolean isPanel) {
		for (int i = 0; i < x; i++) {
			puntoX += 10;
			puntoY = 10;
			for (int j = 0; j < y; j++) {
				puntoY += 10;

				this.tablero[i][j] = new Casilla(i, j, iniciarRectCasilla(i, j,
						this.tamCasilla, isPanel), isPanel);
				// if(isPanel){
				//					
				// }
				// this.tablero[i][j].setPosDisplayX(puntoX);
				// this.tablero[i][j].setPosDisplayY(puntoY);
			}
		}

	}

	public void setFichaEnTablero(Ficha ficha, int posx, int posy) {
		this.tablero[posx][posy].setFicha(ficha);
	}

	private RectF iniciarRectCasilla(int i, int j, int tamCasilla,
			boolean isPanel) {
		RectF rf = new RectF();
		if (isPanel)
			rf.left = j * tamCasilla + 10;// +10;10
		else
			rf.left = j * tamCasilla + ESPACIO;// +10;
		rf.right = rf.left + tamCasilla - 3;
		if (isPanel)
			rf.top = i * tamCasilla + 10;
		else
			rf.top = i * tamCasilla + ESPACIO_ARRIBA;// 10

		rf.bottom = rf.top + tamCasilla - 3;
		// ContentMainView.imprimirCoordenadas(i, j);
		// ontentMainView.imprimirRectF(rf);
		return rf;
	}

}
